package org.lsi.pl2.resnombres;

import org.lsi.pl2.parser.ReferenciaAST;

import antlr.ASTFactory;
import antlr.collections.AST;

public class Simbolo {
	private String nombre;
	private AST declaracion;
	private Ambito ambito;
	private ASTFactory factory;
	
	public Simbolo() {
		factory = new ASTFactory();
	}
	public Simbolo(String nombre, AST declaracion, Ambito ambito) {
		this();
		this.nombre = nombre;
		this.declaracion = declaracion;
		this.ambito = ambito;
	}
	public AST getDeclaracion() {
		AST ret = (declaracion!=null)?factory.dupTree(declaracion):null;
		if (ret!=null) {
			((ReferenciaAST)ret).setLinea(((ReferenciaAST)ret).getLinea());
			((ReferenciaAST)ret).setColumna(((ReferenciaAST)ret).getColumna());
		}
		return ret;
	}
	public void setDeclaracion(AST declaracion) {
		this.declaracion = declaracion;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public Ambito getAmbito() {
		return ambito;
	}
	public void setAmbito(Ambito ambito) {
		this.ambito = ambito;
	}
	
}
